package com.nnnu.orange.service;


import com.nnnu.orange.pojo.dto.*;
import com.nnnu.orange.pojo.entity.Users;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nnnu.orange.result.PageResult;

import java.util.List;

/**
 * <p>
 * 存储用户的详细信息 服务类
 * </p>
 *
 * @author zk
 * @since 2024-11-07
 */
public interface IUsersService extends IService<Users> {

    /**
     * 分页查询所有用户列表
     *
     * @param queryDto dto
     * @return 分页后的列表
     */
    PageResult<?> pageList(UserQueryDto queryDto);

    /**
     * 为用户重置密码
     *
     * @param userId 用户id
     */
    void resetUserPassword(Integer userId);

    /**
     * 为用户修改信息
     *
     * @param updateDto dto
     */
    void updateUserInfo(UserDto updateDto);

    /**
     * 新增用户
     *
     * @param userDto dto
     */
    void saveUser(UserDto userDto);

    /**
     * 批量删除用户
     *
     * @param ids 用户id列表
     */
    void batchDeleteUser(List<Integer> ids);

    /**
     * 用户注册
     *
     * @param userDto dto
     */
    void register(UserRegisterDto userDto);

    /**
     * 用户修改密码
     *
     * @param paDto dto
     */
    void updatePassword(UserChangPaDto paDto);

    /**
     * 用户登录
     *
     * @param loginDto dto
     * @return 用户实体
     */
    Users login(UserLoginDto loginDto);

}
